 
package openhome.bo;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;
import openHome.dao.MySQLConexionBD;
import openhome.beans.DispositivosBE;

public class DispositivosBO {
    ResultSet rs;
    Connection cn;
    String sql="";
    public ResultSet traerDispositivos(){
        try {            
            cn = (Connection) MySQLConexionBD.getInstance().getConnection();
            Statement statement = cn.createStatement();
            sql="select iddispositivo,dispositivo,pin_arduino,pwd,b.tipo_dispositivo " ;
            sql+="from dispositivos a left join dispositivos_tipo b on a.idtipo_dispositivo=b.idtipo_dispositivo ";
            
            rs= statement.executeQuery(sql);
             
        } catch (SQLException ex) {
            Logger.getLogger(DispositivosBO.class.getName()).log(Level.SEVERE, null, ex);
        }
        return rs;        
    }
    public DispositivosBE traerDispositivoPorID(Integer id){
        DispositivosBE be=new DispositivosBE();
        try {            
            cn = (Connection) MySQLConexionBD.getInstance().getConnection();
            Statement statement = cn.createStatement();
            sql="select iddispositivo,dispositivo,pin_arduino,pwd,idtipo_dispositivo " ;
            sql+="from dispositivos where iddispositivo="+id;            
            rs=statement.executeQuery(sql);
            
            while(rs.next()){
                be.setIddispositivo(rs.getInt("iddispositivo"));
                be.setDispositivo(rs.getString("dispositivo"));
                be.setPin_arduino(rs.getInt("pin_arduino"));
                be.setPwd(rs.getInt("pwd"));
                be.setIdtipo_dispositivo(rs.getInt("idtipo_dispositivo"));
            } 
        } catch (SQLException ex) {
            Logger.getLogger(DispositivosBO.class.getName()).log(Level.SEVERE, null, ex);
        }
        return be;        
    }
    
    public Integer nuevo(DispositivosBE be){
        Integer id=0;
        try {
            cn = (Connection) MySQLConexionBD.getInstance().getConnection();
            Statement statement = cn.createStatement();
            sql="select ifnull(max(iddispositivo),0)+1 as id from dispositivos";
            rs=statement.executeQuery(sql);
            
            while(rs.next()){
                 id = rs.getInt("id");                        
            }            
            sql="insert into dispositivos (iddispositivo,dispositivo,pin_arduino,pwd,idtipo_dispositivo) " ;
            sql+="values("+id+",'"+be.getDispositivo()+"',"+be.getPin_arduino()+","+be.getPwd()+","+be.getIdtipo_dispositivo()+")";
            statement.execute(sql);
        } catch (Exception ex) {
            Logger.getLogger(DispositivosBO.class.getName()).log(Level.SEVERE, null, ex);
        }            
        return id;
    }
    
    public boolean actualizar(DispositivosBE be){
        try {
            cn = (Connection) MySQLConexionBD.getInstance().getConnection();
            Statement statement = cn.createStatement();
            sql="update dispositivos set dispositivo='"+ be.getDispositivo()+"',pin_arduino="+be.getPin_arduino()+",pwd="+ be.getPwd() +",idtipo_dispositivo="+ be.getIdtipo_dispositivo() +" " ;
            sql+="where iddispositivo="+be.getIddispositivo();
            statement.execute(sql);
        } catch (Exception ex) {
            Logger.getLogger(DispositivosBO.class.getName()).log(Level.SEVERE, null, ex);
        }            
        return true;
    }
    
    
    
    
    
    public ResultSet traerDispositivosTipos(){
        try {            
            cn = (Connection) MySQLConexionBD.getInstance().getConnection();
            Statement statement = cn.createStatement();
            sql="select idtipo_dispositivo,tipo_dispositivo " ;
            sql+="from dispositivos_tipo ";            
            rs= statement.executeQuery(sql);             
        } catch (SQLException ex) {
            Logger.getLogger(DispositivosBO.class.getName()).log(Level.SEVERE, null, ex);
        }
        return rs;        
    }
}
